import { defineConfig, loadEnv } from 'vite'
import uni from '@dcloudio/vite-plugin-uni'

import { resolve } from 'path'

// https://vitejs.dev/config/
export default defineConfig({
  envDir: resolve(__dirname, 'env'),
  plugins: [uni()],
  resolve: {
    // api: 'modern-compiler', // 使用了现代编译器 API 来处理 SCSS 文件，否则控制台会报错
    // 别名
    alias: {
      '@': resolve(__dirname, 'src'),
    },
  },
  server: {
    host: '0.0.0.0',
    port: 3000,
    open: false,
    proxy: {
      '/api': {
        target: loadEnv(process.argv[process.argv.length - 1], './env')
          .VITE_SERVER_NAME,
        changeOrigin: true,
        // secure: true,
        // ws: true,
        // rewrite target目标地址 + '/api'，如果接口是这样的，那么不用重写
        // rewrite: (path) => path.replace(/^\/api/, '') // 路径重写，本项目不需要重写
      },
    },
  },
  css: {
    // css预处理器
    preprocessorOptions: {
      scss: {
        quietDeps: true, // 忽略依赖中的警告
        api: 'modern-compiler',
        // 因为uni.scss可以全局使用，这里根据自己的需求调整
        // additionalData: `@use "./src/styles/global.scss" as *;`,
        // additionalData: '@import "./src/styles/global.scss";', // 公用的scss属性文件
        // additionalData: `@use "./src/styles/global.scss" as *;`,
        silenceDeprecations: ['legacy-js-api'],
      },
    },
  },
  vue: {
    compilerOptions: {
      isCustomElement: (tag) => ['up-button', 'uniTabBar'].includes(tag), // 合并自定义元素检查
    },
  },
})
